﻿using System;
using System.Globalization;

namespace epicenter2010.NH.Customisation.UserTypes
{
    /// <summary>
    /// Customer entity
    /// bstack @ 06/06/2010
    /// </summary>
    public class Customer
    {
		private Guid c_id;
		private string c_firstName;
		private string c_lastName;
		private CultureInfo c_culture;
		private epicenter2010.NH.Customisation.UserTypes.References c_references;


        /// <summary>
        /// Id
        /// </summary>
		public Guid Id { get { return this.c_id; } }

        /// <summary>
        /// First name
        /// </summary>
		public string FirstName { get { return this.c_firstName; } }

        /// <summary>
        /// Last name
        /// </summary>
		public string LastName { get { return this.c_lastName; } }

		/// <summary>
		/// Culture
		/// </summary>
		public CultureInfo Culture { get { return this.c_culture; } }

		/// <summary>
		/// References
		/// </summary>
		public epicenter2010.NH.Customisation.UserTypes.References References { get { return this.c_references; } }


		/// <summary>
		/// Ctor, required for NHibernate
		/// </summary>
		private Customer() { }


		/// <summary>
		/// Ctor with args
		/// </summary>
		/// <param name="id"></param>
		/// <param name="firstName"></param>
		/// <param name="lastName"></param>
		/// <param name="culture"></param>
		public Customer(
			Guid id,
			string firstName,
			string lastName,
			CultureInfo culture,
			epicenter2010.NH.Customisation.UserTypes.References references)
		{
			// DBC checks would exist here

			this.c_id = id;
			this.c_firstName = firstName;
			this.c_lastName = lastName;
			this.c_culture = culture;
			this.c_references = references;
		}
    }
}
